/* Copyright ©, 2022, ECARX (Hubei) Technology Co., Ltd. All rights reserved.
 *
 * NOTICE: This file contains information which is confidential and proprietary to ECARX
 * (Hubei) Technology Co., Ltd. and/or other developers. No license to any intellectual
 * property rights contained within this file is either granted or implied except as may be
 * provided in an agreement with ECARX (Hubei) Technology Co., Ltd.
 *
 * Any unauthorized copying or distribution of content from this file in whole or in part
 * is prohibited.
 */
#ifndef ECARX_VHAL_CORE_EXECUTE_DISPATCHER_H
#define ECARX_VHAL_CORE_EXECUTE_DISPATCHER_H

#include "VendorVehicleServer.h"
#include "vhal_core/property/IProperty.h"
namespace ecarx::vhal::core {

class Dispatcher {
    std::vector<int32_t> changedSignal;
    int64_t mToken;
  public:
    Dispatcher(const std::vector<int32_t>& signals);

    void dispatchSignal(impl::VendorVehicleServer* server, property::Area* area, int32_t signalId, int64_t timestamp);

    bool isExistChangedSignal(property::Area* area);
};

}  // namespace ecarx::vhal::core

#endif